﻿&НаСервере
Функция ПечатнаяФорма(ПараметрКоманды)
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.ОтображатьСетку = Истина;
	ТабличныйДокумент.ОтображатьЗаголовки = Истина;
	
	Сформирован = Ложь;
	ТабМакет = Справочники.Товары.ПолучитьМакет("МакетПрайсЛиста"); 

	Шапка = ТабМакет.ПолучитьОбласть("Шапка");
	ТабличныйДокумент.Вывести(Шапка);

	ОбластьНоменклатура = ТабМакет.ПолучитьОбласть("ОбластьНоменклатура");
	
	Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                    |    Товары.Код КАК Код,
                    |    Товары.Наименование КАК Наименование,
                    |    Товары.Артикул КАК Артикул,
                    |    Товары.ФайлКартинки КАК Картинка,
                    |    Товары.Описание КАК Описание,
                    |    Товары.Вид КАК Вид,
                    |    ЦеныТоваров.Цена КАК Цена
                    |ИЗ
                    |    РегистрСведений.ЦеныТоваров КАК ЦеныТоваров
                    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товары
                    |        ПО ЦеныТоваров.Товар = Товары.Ссылка
                    |ГДЕ
                    |    Товары.ЭтоГруппа = ЛОЖЬ
                    |    И ЦеныТоваров.ВидЦен = &ВидЦен
                    |
                    |УПОРЯДОЧИТЬ ПО
                    |    Вид,
                    |    Товары.Родитель.Код,
                    |    Код";

    Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.НайтиПоНаименованию("Розничная"));
						
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		ОбластьНоменклатура.Параметры.Заполнить(Выборка);
		
		Описание = "";
		
		Чтение = Новый ЧтениеHTML();
		Чтение.УстановитьСтроку(Выборка.Описание);
		
		ДокDOM = Новый ПостроительDOM();
		HTML = ДокDOM.Прочитать(Чтение);
		
		Если Не HTML.ЭлементДокумента = Неопределено Тогда
			Для Каждого Узел из HTML.ЭлементДокумента.ДочерниеУзлы Цикл 
				Если Узел.ИмяУзла = "body" Тогда
					Для Каждого ЭлементОписания из Узел.ДочерниеУзлы Цикл 
						Описание = Описание + ЭлементОписания.ТекстовоеСодержимое;
					КонецЦикла;
				КонецЕсли;
			КонецЦикла;
		КонецЕсли;
		ОбластьНоменклатура.Параметры.Описание = Описание;
		
		Если (Выборка.Картинка <> Null) Тогда 
			ОбластьНоменклатура.Параметры.ПараметрКартинки = Новый Картинка(Выборка.Картинка.ДанныеФайла.Получить());
		КонецЕсли;
		
		ТабличныйДокумент.Вывести(ОбластьНоменклатура, Выборка.Уровень());
		Сформирован = Истина;
	КонецЦикла;
	
	Если Сформирован Тогда
		Возврат ТабличныйДокумент;
	Иначе 	
		Возврат Неопределено;
	КонецЕсли;	
КонецФункции

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
	ТабличныйДокумент = ПечатнаяФорма(ПараметрКоманды);
	
	Если ТабличныйДокумент <> Неопределено Тогда
		ТабличныйДокумент.Показать();
	КонецЕсли;	
	
КонецПроцедуры
